home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Comm / AmiTCP30b2.lha / src / appl / napsaterm / tel_iacout.c < prev    next >
C/C++ Source or Header  |  1994-05-14  |  2KB  |  73 lines

  1. /*
  2.  * $Id: tel_iacout.c,v 3.1 1994/05/14 14:17:07 ppessi Exp $
  3.  *
  4.  * Author: Tomi Ollila <too@cs.hut.fi>
  5.  *
  6.  * Copyright © 1993, 1994   AmiTCP/IP Group, <amitcp-group@hut.fi>
  7.  *                Helsinki University of Technology, Finland.
  8.  *                All rights reserved.
  9.  *
  10.  * Created: Thu Apr  7 18:18:03 1994 too
  11.  * Last modified: Fri May 13 04:42:56 1994 ppessi
  12.  *
  13.  * HISTORY
  14.  * $Log: tel_iacout.c,v $
  15.  * Revision 3.1  1994/05/14  14:17:07  ppessi
  16.  * initial revision
  17.  *
  18.  * Revision 3.1  1994/04/17  11:31:54  too
  19.  * initial revision
  20.  *
  21.  */
  22.  
  23. #include "telnet.h"
  24. #include <arpa/telnet.h>
  25. #include "tel_iacout.h"
  26.  
  27. u_char telnet_iacbuf[36];    /* buffer for negotiation replies */
  28. short  telnet_iaclen;        /* bytes in  buffer above  */
  29.  
  30. void putiac2(u_char wwdd, u_char c)
  31. {
  32.   if (telnet_iaclen + 3 > sizeof telnet_iacbuf)
  33.     doIacflush();
  34.  
  35.   telnet_iacbuf[telnet_iaclen++] = IAC;
  36.   telnet_iacbuf[telnet_iaclen++] = wwdd;
  37.   telnet_iacbuf[telnet_iaclen++] = c;
  38. }
  39.  
  40. void putiac1(u_char c)
  41. {
  42.   if (telnet_iaclen + 2 > sizeof telnet_iacbuf)
  43.     doIacflush();
  44.   
  45.   telnet_iacbuf[telnet_iaclen++] = IAC;
  46.   telnet_iacbuf[telnet_iaclen++] = c;
  47. }
  48.  
  49. void putiacstring(u_char wwdd, const u_char * str)
  50. {
  51.   size_t len;
  52.  
  53.   iacflush();
  54.  
  55.   telnet_iacbuf[telnet_iaclen++] = IAC;
  56.   telnet_iacbuf[telnet_iaclen++] = SB;
  57.   telnet_iacbuf[telnet_iaclen++] = wwdd;
  58.   telnet_iacbuf[telnet_iaclen++] = TELQUAL_IS;
  59.  
  60.   len = strlen(str);
  61.   if (len <= sizeof telnet_iacbuf - 6) {
  62.     strcpy(telnet_iacbuf + telnet_iaclen, str);
  63.     telnet_iaclen += len;
  64.   } else {
  65.     iacflush();
  66.     send(rsock, str, len, 0);
  67.   }
  68.   telnet_iacbuf[telnet_iaclen++] = IAC;
  69.   telnet_iacbuf[telnet_iaclen++] = SE;
  70. }
  71.  
  72.  
  73.